#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"
//#include "rclcpp/callback_group.hpp"
#include "rclcpp/client.hpp"
#include "rclcpp/service.hpp"
#include "ts_test/srv/test.hpp"


class ts:public rclcpp::Node
{
public:
    ts(std::string name);
    ~ts();
private:
    void timer_callback();
    void suber_callback(std_msgs::msg::String str);
    void seriver_callback(const std::shared_ptr<ts_test::srv::Test::Request> request,     // CHANGE
                          std::shared_ptr<ts_test::srv::Test::Response>       response);
    void clicent_callback(rclcpp::Client<ts_test::srv::Test>::SharedFuture s);
private:
    rclcpp::TimerBase::SharedPtr timer_;
    rclcpp::Publisher<std_msgs::msg::String>::SharedPtr puber;
    rclcpp::Subscription<std_msgs::msg::String>::SharedPtr suber;
    rclcpp::CallbackGroup::SharedPtr group_;
    rclcpp::Client<ts_test::srv::Test>::SharedPtr client_;
    rclcpp::Service<ts_test::srv::Test>::SharedPtr service_;
//    rclcpp::CallbackGroup::CallbackGroup::SharedPtr group_;
};
